package com.mes.cloud.dao;

import java.util.List;
import java.util.Map;

/**
 * <详细描述>
 *
 * @author: wxm
 * @date: 2019/4/24 17:25
 * @version: 1.0
 */
public interface BaseDao<T> {
    /**
     * 插入单个对象
     * @param t
     * @return
     */
    Long insert(T t);

    /**
     * 批量插入
     * @param list
     * @return
     */
    Long batchInsert(List<T> list);

    /**
     * 删除对象
     * @param id
     * @return
     */
    Long delete(Long id);

    /**
     * 批量删除
     * @param ids
     * @return
     */
    Long batchDelete(List<String> ids);

    /**
     * 更新
     * @param t
     * @return
     */
    Long update(T t);

    /**
     * 获取对象详细信息
     * @param id
     * @return
     */
    T get(Long id);

    /**
     * 查找列表
     * @param map
     * @return
     */
    List<T> findList(Map<Object, Object> map);

    /**
     * 软删除
     * @param id
     * @return
     */
    Long softDelete(Long id);

    /**
     * 批量软删除
     * @param ids
     * @return
     */
    Long batchSoftDelete(List<Long> ids);

    /**
     * 禁用 启用
     * @param map
     * @return
     */
    Long enable(Map<Object, Object> map);

    /**
     * 批量 禁用 启用
     * @param ids
     * @return
     */
    Long batchEnable(List<Long> ids);

    /**
     * 批量导入
     * @param list
     * @return
     */
    Long importFile(List<T> list);


}
